<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    //数据的类型：基本数据：String,Number,Boolean,symbol.undefined,null引用数据：object,
    // null和undefined的区别,null是一个空对象指针，var对一个变量进行声明并为初始化的时候，此时就是undefined
    // var num
    // console.log(num)
    // var obj={}
    // console.log(obj)
    // console.log(null==undefined)
    // console.log(null===undefined)

    //typeof检测数据类型
    // var num=122
    // var str='asdasd'
    // var arr=[1,2,3]
    // var obj={
    //     name:'张三',
    //     gender:'男'
    // }
    // console.log(typeof(num))
    // console.log(typeof(str))
    // console.log(typeof(null))
    // console.log(typeof(arr))
    // console.log(typeof(obj))
    // //检测数组
    // console.log(arr instanceof Array)

    //var/let/const
    //let和const不存在变量提升，不允许重复申明，会形成块级作用域
    // let a=1
    // let a=2
    // console.log(a)
    // console.log(a)
    // var a=2 //存在变量提升
    //let a=2 //不存在变量提升

    //存在块级作用域
    // for(var i=0;i<3;i++){
    //    setTimeout(() => {
    //        console.log(i)
    //    }, );
    // } //打印3个3
    // for(let i=0;i<3;i++){
    //    setTimeout(() => {
    //        console.log(i)
    //    }, );
    // } //打印012
    
    //柯里化
    // function fn(a,b,c){
    //     return a+b+c
    // }
    // var sum=fn(1,2,3)
    // console.log(sum)
    
    // function fn(a,b,c){
    //     console.log(arguments)
    //     // console.log( arguments.push(4) ) 非数组 
    // }
    // fn(1,2,3)

    function fn(a,b,c){
        return a*b*c
    }
    var sum=fn(2,3,4)
    console.log(sum)

    function A(a){
        return function(b) {
            return function(c) {
              return  a*b*c
            }
        }
    }
    console.log(A(2)(3)(4))

    var crr=[1,23]
    const [a,b]=crr
    console.log(a,b)


    var msg="sdf"
    var msg="sdfd"
    console.log(msg);
</script>
</html>